#include "shm.hpp"
#include "fifo.hpp"
int main()
{
    file wf(_FIFO_PATH_, _FIFO_NAME_);
    wf._writeopen();
    shm sh(PATHNAME, PROJID, USER);
    char *msg = (char *)sh._get_addr();
    int index = 0;
    for (char ch = 'A'; ch <= 'Z'; ch++, index += 2)
    {
        msg[index] = ch;
        msg[index + 1] = ch;
        printf("write : %s\n",msg);
        // std::cout << "wake server" << std::endl;
        wf._write(); // 写入一条数据，唤醒server进程
        sleep(1);
    }
    wf._close();
    return 0;
}

// int main()
// {
//     shm sh;
//     sh._get();
//     sh._connect();
//     char* addr = (char*) sh._get_addr();
//     //写入
//     int index = 0;
//     for(char ch = 'A'; ch<='Z';ch++,index++)
//     {
//         addr[index] = ch;
//         sleep(1);
//     }
//     sh._delete_connect();
//     return 0;
// }

// #include <iostream>
// #include <sys/ipc.h>
// #include <sys/shm.h>
// #include <unistd.h>

// #define PATHNAME "."
// #define PROJID 0x66
// #define SIZE 4096
// int main()
// {
//     key_t key = ftok(PATHNAME, PROJID);
//     // 获取共享内存
//     int shmid = shmget(key, SIZE, IPC_CREAT);
//     // 连接共享内存
//     char *shm = (char *)shmat(shmid, nullptr, 0);
//     // 写入
//     int index = 0;
//     for(char ch = 'A'; ch<='Z';ch++,index++)
//     {
//         shm[index] = ch;
//         sleep(1);
//     }
//     // 去连接 可以忽略
//     shmdt(shm);
//     return 0;
// }

// #include "shm.hpp"
// #include "fifo.hpp"

// int main()
// {
//     //打开管道文件
//     file f(_FIFO_PATH_,_FIFO_NAME_);
//     f._writeopen();
//     sleep(1);
//     //等待server创建共享内存
//     shm sh(USER, PATHNAME, PROJ_ID);
//     char* mas = (char*)sh._get_start_addr();
//     //写
//     int index = 0;
//     for(char ch = 'A'; ch<='Z';ch++,index+=2)
//     {
//         mas[index] = ch;
//         mas[index+1] = ch;
//         //唤醒server进程
//         f._write();
//         sleep(1);
//     }

//     return 0;
// }

/*int main()
{
    //打开管道文件
    file f(_FIFO_PATH_,_FIFO_NAME_);
    f._writeopen();
    sleep(1);
    //等待server创建共享内存
    shm sh;
    //获取共享内存
    sh._getshm();
    //连接共享内存
    sh._connect();
    char* mas = (char*)sh._get_start_addr();
    //写
    int index = 0;
    for(char ch = 'A'; ch<='Z';ch++,index+=2)
    {
        mas[index] = ch;
        mas[index+1] = ch;
        //唤醒server进程
        f._write();
        sleep(1);
    }
    // printf("start address : %p\n", mas);
    return 0;
}*/